package skladowisko.utils;

import java.io.FileInputStream;
import java.util.HashMap;
import java.util.Map;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;

/**
 *
 * @author Krzysiek
 */
public class TransportPXlsReader
{
//**************************************************************************
    public static final String NAZWA_POCIAGU = "nazwaPociagu";
    public static final String DATA_PRZYJAZDU = "dataPrzyjazdu";
    public static final String SKAD = "skad";

    public static final String NRROZPOZNAWCZY = "nrRozpoznawczy";
    public static final String NAZWA = "nazwa";
    public static final String TYP = "typ";
    public static final String MASA = "masa";
    public static final String ARMATOR = "armator";

    public static final String CEL_PODROZY = "cel";
    public static final String GRANICZNA_DATA = "granicznaData";
    public static final String WAGON = "wagon";
   
    //**************************************************************************
     private final String[] naglowki = { WAGON, NRROZPOZNAWCZY, NAZWA, TYP, MASA, ARMATOR, CEL_PODROZY, GRANICZNA_DATA };

     private final String[] pociagNaglowki = {NAZWA_POCIAGU, DATA_PRZYJAZDU, SKAD};
     //**************************************************************************

    private final String TRANSPORT = "transport";
    private final String LISTA_WAGONOWA = "listaWagonowa";

    private Workbook wb;
    private Sheet arkuszTransport;
    private Sheet arkuszKontenery;

    private int currentRowK = 2;
    private int currentRowT = 0;
    //wiersze w poi liczymy od 0


    public TransportPXlsReader(String nazwaPliku) throws Exception
    {
        wb = new HSSFWorkbook(new FileInputStream(nazwaPliku));
        arkuszTransport = wb.getSheet(TRANSPORT);
        arkuszKontenery = wb.getSheet(LISTA_WAGONOWA);
        //arkuszKontenerye w poi licza sie od 0

    }

    //**************************************************************************
    public Map<String, String> pobierzKontener()
    {
        Map<String, String> wynik = new HashMap<String, String>();

        int iloscWierszy = arkuszKontenery.getLastRowNum();
        if(currentRowK > iloscWierszy)
            return null;

        Row wiersz = arkuszKontenery.getRow(currentRowK);

        if(wiersz==null || wiersz.getCell(1).toString().isEmpty())
        {
            currentRowK++;
            return pobierzKontener();
        }

        for(int i=0; i<naglowki.length;i++)
        {
            wynik.put(naglowki[i], wiersz.getCell(i).toString());
        }

        currentRowK++;
        return wynik;
    }

    //**************************************************************************
     public Map<String, String> pobierzTransport() throws Exception
    {
        Map<String, String> wynik = new HashMap<String, String>();

        int iloscWierszy = arkuszTransport.getLastRowNum();
        if(currentRowT > iloscWierszy)
            return null;

        Row wiersz = arkuszTransport.getRow(currentRowT);

        if(wiersz == null)
            System.out.println("Wiersz nie istnieje!");
        
        String nazwa = wiersz.getCell(1).toString();        

        wiersz = arkuszTransport.getRow(currentRowT+1);
        String data = wiersz.getCell(1).toString();
        String godzina = wiersz.getCell(2).toString();

        wiersz = arkuszTransport.getRow(currentRowT+2);
        String skad = wiersz.getCell(1).toString();

        wynik.put(NAZWA_POCIAGU, nazwa);
        wynik.put(DATA_PRZYJAZDU, data + " " + godzina);
        wynik.put(SKAD, skad);

        return wynik;
    }
    //**************************************************************************

}
